package message.controller;


import message.model.Feel;
import message.model.User;
import message.service.FeelService;
import message.service.FriendService;
import message.service.MessageService;
import message.service.UserService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("user")
public class FeelController {
	@Resource
	private UserService userService;

	private FeelService feelService;

	MessageService messageService;

	FriendService friendService;
	private final Log logger = LogFactory.getLog(getClass());
	/**
	 * @author: �����
	 * @date: 2016��6��22��
	 *
	 * @describe���鿴�Լ���˵˵��  useridΪ˵˵��id��   currentPageĿ��Ϊ��ҳ
	 */
//@RequestMapping("/feelmy")
//public ModelAndView showFeelMy(Integer userid, Integer currentPage, HttpSession session){
//	ModelAndView mav=new ModelAndView();
//	User host=(User)session.getAttribute("host");
//	int totalfeels=feelService.feelCount(host.getUserid()); //��ȡ�Լ�����˵˵������������������������ҳ��˵˵��������������ʾ
//	if(currentPage==null) currentPage=1;  //�紫����ֵ�ǿգ�����ʾ��һҳ
//	PageInfo result=feelService.showFeels(userid,currentPage);//,��ѯuseridΪ���ղ���������˵˵��Ϣ
//	List feels=result.getList();  //��ȡ��װ��PageInfo�в�ѯ���ķ�ҳ�����
//	result.setList(null); //ʹ��PageInfo������е�ֵΪ�գ��Ա�����ͬ������ת�����·�װ��������ÿգ�������������ԭ���ļ�����������ݣ������ظ���
//	if(feels.size()<=0){   //˵˵�ǿյ�����£���ʾ�û�
//		mav.addObject("feels",null );
//		mav.addObject("showFeelback","˵˵���ǿյģ���ȥ˵˵��" );
//	}
//	List feelList=new ArrayList();  //���ڴ��Map���ϡ�Map���Ϸ����˵˵�ߵ���Ϣ��˵˵
//	for(int i=0;i<feels.size();i++){
//		Map feeluser=new HashMap<String, Object>(); //Map���ϣ����˵˵�ߵ���Ϣ��˵˵
//		Feel feel=(Feel)feels.get(i);
//		String timestring=1900+feel.getFeeltime().getYear()+"��"+(feel.getFeeltime().getMonth()+1)+"��"+feel.getFeeltime().getDate()+"��       "
//				+feel.getFeeltime().getHours()+": "+feel.getFeeltime().getMinutes()+": "+feel.getFeeltime().getSeconds();
//		feel.setTimestring(timestring);  //��ʱ���ʽ�ı���й���ɫ��ʱ���ʽ
//		User user1=userService.findUserById(feel.getUserid());
//		feeluser.put("feel", feel); //˵˵�ߵ�˵˵
//		feeluser.put("user", user1);  //˵˵�ߵ���Ϣ
//		feelList.add(feeluser);  //������˵˵�ߵ�map���Ϸ���list��
//	}
//	result.setList(feelList);  //ͨ���Բ�ѯ�����ת�������·�װPageInfo�Ĳ�ѯ���list
//	mav.addObject("allfeels",result);
//	mav.addObject("totalfeels",totalfeels);
//	mav.addObject("view","feelmy");  //ǰ�˷�ҳʱ����
//	if(host.getUserid().equals(userid)){ //�����id��ͬ��ת���ҳ��Ҳ��ͬ
//		logger.info(host.getQq()+"�鿴���Լ���˵˵");
//		mav.setViewName("feelmy");   //���˲鿴�Լ�˵˵ת����ҳ��
//	}else{
//		logger.info(host.getQq()+"�鿴��"+userService.findUserById(userid).getQq()+"��˵˵");
//		mav.setViewName("feelother");  //���˲鿴�Լ�����˵˵ת����ҳ��
//	}
//	return mav;
//}
/**
 * 
	 * @author: �����
	 * @date: 2016��6��25��
	 * @describe���鿴�����Լ��ĺ��ѵ�˵˵
 */
//@RequestMapping("/feelallperson")
//public ModelAndView showFeelAllperson(Integer currentPage,HttpSession session){
//	ModelAndView mav=new ModelAndView();
//	User host=(User)session.getAttribute("host");
//	int totalmessages=messageService.messageCount(host.getUserid());
//	int totalfeels=feelService.feelCount(host.getUserid()); //��ȡ�Լ�����˵˵������������������������ҳ��˵˵��������������ʾ
//	int totalfriends=friendService.selectCountFriend(host.getUserid());
//	if(currentPage==null) currentPage=1;  //�紫����ֵ�ǿգ�����ʾ��һҳ
//	PageInfo result=feelService.showFeels(null,currentPage);//,��ѯuseridΪ���ղ���������˵˵��Ϣ
//	List feels=result.getList();  //��ȡ��װ��PageInfo�в�ѯ���ķ�ҳ�����
//	result.setList(null); //ʹ��PageInfo������е�ֵΪ�գ��Ա�����ͬ������ת�����·�װ��������ÿգ�������������ԭ���ļ�����������ݣ������ظ���
//	if(feels.size()<=0){   //˵˵�ǿյ�����£���ʾ�û�
//		mav.addObject("feels",null );
//		mav.addObject("showFeelback","˵˵���ǿյģ���ȥ˵˵��" );
//	}
//	List feelList=new ArrayList();  //���ڴ��Map���ϡ�Map���Ϸ����˵˵�ߵ���Ϣ��˵˵
//	for(int i=0;i<feels.size();i++){
//		Map feeluser=new HashMap<String, Object>(); //Map���ϣ����˵˵�ߵ���Ϣ��˵˵
//		Feel feel=(Feel)feels.get(i);
//		String timestring=1900+feel.getFeeltime().getYear()+"��"+(feel.getFeeltime().getMonth()+1)+"��"+feel.getFeeltime().getDate()+"��       "
//				+feel.getFeeltime().getHours()+": "+feel.getFeeltime().getMinutes()+": "+feel.getFeeltime().getSeconds();
//		feel.setTimestring(timestring);  //��ʱ���ʽ�ı���й���ɫ��ʱ���ʽ
//		User user1=userService.findUserById(feel.getUserid());
//		feeluser.put("feel", feel); //˵˵�ߵ�˵˵
//		feeluser.put("user", user1);  //˵˵�ߵ���Ϣ
//		feelList.add(feeluser);  //������˵˵�ߵ�map���Ϸ���list��
//	}
//	result.setList(feelList);  //ͨ���Բ�ѯ�����ת�������·�װPageInfo�Ĳ�ѯ���list
//	mav.addObject("allfeels",result);
//	session.setAttribute("totalfeels",totalfeels);
//	session.setAttribute("totalmessages",totalmessages);
//	session.setAttribute("totalfriends",totalfriends);
//	mav.addObject("view","feelallperson");  //ǰ�˷�ҳʱ����
//	logger.info(host.getQq()+"�Ѿ�������ϵͳ����ǰ�ǲ鿴�����˵�˵˵");
//	mav.setViewName("feelallperson");
//	return mav;
//}

/**
 * 
	 * @author: �����
	 * @date: 2016��6��23��
	 * @describe������˵˵������һ��˵˵��¼
 */
@RequestMapping("/publishFeel")
public ModelAndView publishFeel(Feel feel, HttpSession session){
	 User host=(User)session.getAttribute("host");
	 ModelAndView mav=new ModelAndView();
	 mav.setViewName("redirect:/user/feelmy?userid="+host.getUserid()); //�ض��򵽲�ѯ���Խ���
	 java.util.Date  date=new java.util.Date();
	 java.sql.Timestamp time=new java.sql.Timestamp(date.getTime()); //���뵱ǰʱ��
	 feel.setUserid(host.getUserid());
	 feel.setFeeltime(time);
	 boolean leave_suc=feelService.publishFeel(feel);
	 if(leave_suc){
		 logger.info(host.getQq()+"������˵˵");
		 mav.addObject("publish_suc", "����ɹ���");
	 }
	 else{
		 logger.info(host.getQq()+"����˵˵ʧ�ܡ�sql��������");
		 mav.addObject("publish_fail", "����ʧ�ܣ�");
	 }
	 return mav;
}
/**
	 * @author: �����
	 * @date: 2016��6��23��
	 *
	 * @param currentPage
	 * @describe�������receiveid��currentPage����������Ϊ�����ض���ʱ����֮��
	 * ��ɾ���ɹ� ����ת��ɾ��ʱ���ڲ�ѯ���档�����Ƿ�ҳ������Ҫ�ѵ�ǰҳcurrentPage�ͷ���˵˵��userid����
 */
@RequestMapping("/deleteFeel")
public ModelAndView deleteFeel(int feelid,Integer userid,Integer currentPage,HttpSession session ,HttpServletResponse response){
	User host=(User)session.getAttribute("host");
	ModelAndView mav=new ModelAndView();
	boolean delete_suc=feelService.deleteFeel(feelid);
	 if(delete_suc){
		 logger.info(host.getQq()+"ɾ����һ��˵˵");
		 
		 mav.addObject("delete_suc", "ɾ���ɹ���");
	 }
	 else{
		 mav.addObject("delete_fail", "ɾ��ʧ�ܣ�");
	 }
	 mav.setViewName("redirect:/user/feelmy?userid="+host.getUserid()+"&currentPage="+currentPage);
	 return mav;
}


}
